iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0
自我挑戰組

用java解Leetcode系列 第 1

用java解Leetcode Day1

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20250915/20169501V2Xw1UKqmT.pnghttps://ithelp.ithome.com.tw/upload/images/20250915/20169501uD5wTA24NF.png

  1. Two Sum
    以上兩張圖片,一張是我的程式碼,另一張是我解題成功的證明,之後不在贅述。
    這題有兩個前提,一個是「恰好只有一個解」,這意味這只需要找到一組解即可,不需要擔心會有其他解,另一個是「不能重複使用同一元素」,這意味著不能使用同一索引位置的數字兩次或以上。
    解題思路是先創造一個空的雜湊表(HashMap),用來儲存我們已經遍歷過的數字。HashMap的鍵(key)儲存數字本身,值(value)儲存這個數字在陣列中的索引。
    接著就要遍歷nums陣列,對於陣列中每個數字nums[i],首先要計算出目標差值(complement = target – nums[i]),再來要檢查這個complement是否已經存在於HashMap中,如果complement存在,就表示已經找到了這對數字,接著只要回傳complement和與它對應的nums[i]的索引就行了,但如果不存在,就將nums[i]和它的索引i存入HashMap中,以便後續的數字能夠檢查它。
    雖然已經確定這題目有解,但為了培養良好的習慣,可以加上我最後一段程式碼,可以在找不到解的情況時,回傳一個空陣列。

下一篇
用java解Leetcode Day2
系列文
用java解Leetcode4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言